package com.tensquare.friend.service;

import com.tensquare.friend.dao.FriendDao;
import com.tensquare.friend.dao.NoFriendDao;
import com.tensquare.friend.pojo.Friend;
import com.tensquare.friend.pojo.NoFriend;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @program: tensquare_parent
 * @description:
 * @author: tianshengfei
 * @create: 2019-12-09 21:26
 **/
@Service
@Transactional
public class FriendService {

    @Autowired
    private FriendDao friendDao;
    @Autowired
    private NoFriendDao noFriendDao;

    public int addFriend(String userId, String friendid) {
        //先判断userId到friendid的是否有数据，有的话就是重复添加返回0
        Friend friend = friendDao.findByUseridAndFriendid(userId, friendid);
        if (friend != null) {
            return 0;
        }
        //直接添加好友，让好友userId到friendid的type=0
        friend = new Friend();
        friend.setUserid(userId);
        friend.setFriendid(friendid);
        friend.setIslike("0");
        friendDao.save(friend);
        //如果从friendid到userId有数据双方的type都改为0
        if(friendDao.findByUseridAndFriendid(friendid, userId)!=null){
            //把双方的idlike=1
            friendDao.updateIsLike("1",userId,friendid);
            friendDao.updateIsLike("1",friendid,userId);
            return 1;

        }
        return 1;
    }

    public int addNoFriend(String userId, String friendid) {
        //判断是否已经是非好友
        NoFriend noFriend = noFriendDao.findByUseridAndFriendid(userId, friendid);
        if (noFriend == null) {
            noFriend = new NoFriend();
            noFriend.setUserid(userId);
            noFriend.setFriendid(friendid);
            noFriendDao.save(noFriend);
            return 1;
        }
        return 0;
    }

    public void deleteFriend(String userId, String friendid) {
        //先删除uderid到friendid数据
        friendDao.deleteFriend(userId,friendid);
        //更新friendid到userId的islike=0 如果她不喜欢你，这条记录找不到就不会执行，所以不用判断这条记录是否存在
        friendDao.updateIsLike("0",friendid,userId);
        //非好友添加数据
        NoFriend noFriend = new NoFriend();
        noFriend.setUserid(userId);
        noFriend.setFriendid(friendid);
        noFriendDao.save(noFriend);
    }
}
